import Vue from 'vue'
import App from './App'
import router from './router'
// 数据交互使用axios
import axios from 'axios'
// vuex
import Vuex from 'vuex'
// 图片懒加载
import VueLazyload from 'vue-lazyload'
// 分页插件
import infiniteScroll from  'vue-infinite-scroll'
// 全局金额过滤器
import {currency} from './util/currency'

import './assets/css/base.css'
import './assets/css/checkout.css'
import './assets/css/login.css'
import './assets/css/product.css'

// 使用插件
Vue.use(infiniteScroll);
Vue.use(Vuex);

// 图片懒加载的使用 loading图片加载出来时候的动画
Vue.use(VueLazyload, {
  loading: 'static/loading-svg/loading-bars.svg',
  try: 3 // default 1
});

// 价格过滤器 currency本身是一个函数，所以不要写成currency()
Vue.filter("currency",currency);
Vue.config.productionTip = false;

/**
 * 实时更新头部的用户名、购物车数量
 * @type {Store<any>}
 */
const store = new Vuex.Store({
  // 状态
  state: {
    // 用户名
    nickName: '',
    // 购物车数量
    cartCount: 0
  },
  // 改变state状态
  mutations: {
    // 更新用户信息
    updateUserInfo(state, nickName) {
      state.nickName = nickName;
    },
    // 购物车数量
    updateCartCount(state, cartCount) {
      state.cartCount += cartCount;
    },
    // 购物车数量初始化
    initCartCount(state, cartCount) {
      state.cartCount = cartCount;
    }
  }
});

/* eslint-disable no-new */
new Vue({
  el: '#app',
  store,
  router,
  mounted(){
    // this.checkLogin();
    // this.getCartCount();
  },
  methods:{
    // checkLogin(){
    //   axios.get("users/checkLogin").then(res => {
    //     var res = res.data;
    //     if (res.status == "0") {
    //       // this.$store.commit("updateUserInfo", res.result);
    //     }else{
    //       // if(this.$route.path != "/goods"){
    //       //   this.$router.push("/goods");
    //       // }
    //     }
    //   });
    // }
    // getCartCount(){
    //   axios.get("users/getCartCount").then(res=>{
    //     var res = res.data;
    //     if(res.status=="0"){
    //       this.$store.commit("updateCartCount",res.result);
    //     }
    //   });
    // }
  },
  template: '<App/>',
  //render: h => h(App),
  components: { App }
});//.$mount('#app')
